// PR c++/17670
// { dg-do run }

#include <cstdlib>
#include <new>

bool abort_new;
void *operator new[](size_t bytes) throw (std::bad_alloc) { 
  if (abort_new)
    abort(); 
  return operator new (bytes);
}


struct X {};  
int main () {
  // Do not abort until int main is running in case startup code uses
  // operator new[].
  abort_new = true;
  new (X);
}
